/**
 * 主要布局
 */

//引用
import Symbol from "../fixed/symbol";
import Layout from "../layout/layout.js";
import WeiDi from "../dipan";
import JingTian from "../tianpan";
import AnRen from "../renpan";

const plate = {
	/**  根据数据获取 对应的下标
	 *   @param   {Array} arr  数组
	 *   @param   {String} searchWord 查询的元素
	 * 	 @returns number -1时表示未找到，其他值表示对应数组的下标
	 */

	getRow: function getRow(arr, searchWord) {
		var row = arr.findIndex((value) => value === searchWord);
		return row;
	},

	/**
	 * 1、 维地(排布地盘)
	 *   ① 排布地盘奇仪 		(旬首宫，定符使)
	 *   ② 排布地盘九神		(小值符落旬首宫)
	 *   ③ 排布地盘暗干支	(六甲旬首随小值符)
	 */
	/**
	 *   『时干』 与  『地盘干』 对应的宫位
	 */

	getTnum: function getTnum(Ddry, Sdry) {
		// 『时干』 与  『地盘干』 对应的宫位
		const Tnum = this.getRow(Ddry, Sdry);
		//若时干为 『甲』 在 『地盘干』 中找不到，则要明了  『甲癸』 同宫位
		const Tbnum = this.getRow(Ddry, '癸');
		if (Tnum === -1) {
			Tnum = Tbnum;
		}

		// 输出数据
		return Tnum;
	},

	/**
	 *   『时柱』 与  『地盘暗干支』 对应的宫位
	 */
	getTDnum: function getTDnum(BDdry, stime, Sdry) {
		//時柱在地盤暗幹支對應的宮位
		let BDnum;
		//優先考慮時幹為 '癸'的時候，因為地盤暗幹支不存在，故而使用 '甲癸' 同宮
		if (Sdry === '癸') {
			BDnum = Num2;
		} else {
			//获取 时干支 与 '地盘暗干支' 对应的宫位
			BDnum = this.getRow(BDdry, stime);
		}
	},

	getplate: function getplate(jq, rdry, stime) {

		// 全局变量

		const layout = Layout.getAllData(jq, rdry, stime);

		// 初始化
		// 『局数』
		// const Jnum = Layout.getinnings(jq,rdry)
		const Jnum = layout.Jnum;
		//『阴阳遁』
		// const Yinyang = Layout.getYinyang(jq);
		const Yinyang = layout.YinYang;
		// 『旬首』
		const Xshou = layout.Xshou;
		// 『六甲旬』--时柱
		const SXshou = layout.SXshou;
		// 『六甲旬旬首』--时柱
		const SXshous = layout.SXshou[0];
		console.log(SXshous)
		// 『时干』
		const Sdry = layout.Sdry;
		// 『旬首』宫位
		const Xnum = layout.Xnum;

		//1、 纬地（排布地盘):
		const Ddata = WeiDi.getWeiDi(Jnum, Yinyang, Xshou, SXshou);

		// 『时干』 与  『地盘干』 对应的宫位
		const Tnum = this.getTnum(Ddata.DQiyi, Sdry);
		// 2、经天（排布天盘):
		const Tdata = JingTian.getAllData(Yinyang, Ddata.Menvoy.Ystarnum, Tnum, Xnum, SXshou);

		// 『时柱』 与  『地盘暗干支』 对应的宫位
		const TDnum = this.getTDnum(Ddata.DGanZhi, stime, Sdry);

		// 3、安人（排布人盘)：
		const Rdata = AnRen.getAllData(Yinyang, Ddata.Menvoy.Ystarnum, Ddata.Aenvoy.BDgatesnum, SXshou, TDnum);

		// 4、输出数据：
		// const json = {
		// 	"Ddata":Ddata,
		// 	"Tdata":Tdata,
		// 	"Rdata":Rdata,
		// 	"SXshous":SXshous,
		// 	"Xshou":Xshou,
		// 	"Yinyang":Yinyang,
		// 	"Jnum":Jnum
		// }
		const json = {
				PData: {
					0: {
						0: '',
						1: Tdata.Tjiuxing[3],
						2: '',
						3: Tdata.Tqiyi[3],
						4: Tdata.Tjiushen[3],
						5: Tdata.TDganzhi[3],
						6: Rdata.Rmen[3],
						7: Rdata.RDganzhi[3],
						8: Rdata.Dzhishimen[3],
						9: Ddata.DQiyi[3],
						10: Ddata.DGod[3],
						11: Ddata.DGanZhi[3]
					},
					1: {
						0: '',
						1: Tdata.Tjiuxing[8],
						2: '',
						3: Tdata.Tqiyi[8],
						4: Tdata.Tjiushen[8],
						5: Tdata.TDganzhi[8],
						6: Rdata.Rmen[8],
						7: Rdata.RDganzhi[8],
						8: Rdata.Dzhishimen[8],
						9: Ddata.DQiyi[8],
						10: Ddata.DGod[8],
						11: Ddata.DGanZhi[8]
					},
					2: {
						0: '',
						1: Tdata.Tjiuxing[1],
						2: '',
						3: Tdata.Tqiyi[1],
						4: Tdata.Tjiushen[1],
						5: Tdata.TDganzhi[1],
						6: Rdata.Rmen[1],
						7: Rdata.RDganzhi[1],
						8: Rdata.Dzhishimen[1],
						9: Ddata.DQiyi[1],
						10: Ddata.DGod[1],
						11: Ddata.DGanZhi[1]
					},
					3: {
						0: '',
						1: Tdata.Tjiuxing[2],
						2: '',
						3: Tdata.Tqiyi[2],
						4: Tdata.Tjiushen[2],
						5: Tdata.TDganzhi[2],
						6: Rdata.Rmen[2],
						7: Rdata.RDganzhi[2],
						8: Rdata.Dzhishimen[2],
						9: Ddata.DQiyi[2],
						10: Ddata.DGod[2],
						11: Ddata.DGanZhi[2]
					},
					4: {
						0: '',
						1: Tdata.Tjiuxing[4],
						2: '',
						3: Tdata.Tqiyi[4],
						4: Tdata.Tjiushen[4],
						5: Tdata.TDganzhi[4],
						6: Rdata.Rmen[4],
						7: Rdata.RDganzhi[4],
						8: Rdata.Dzhishimen[4],
						9: Ddata.DQiyi[4],
						10: Ddata.DGod[4],
						11: Ddata.DGanZhi[4]
					},
					5: {
						0: '',
						1: Tdata.Tjiuxing[6],
						2: '',
						3: Tdata.Tqiyi[6],
						4: Tdata.Tjiushen[6],
						5: Tdata.TDganzhi[6],
						6: Rdata.Rmen[6],
						7: Rdata.RDganzhi[6],
						8: Rdata.Dzhishimen[6],
						9: Ddata.DQiyi[6],
						10: Ddata.DGod[6],
						11: Ddata.DGanZhi[6]
					},
					6: {
						0: '',
						1: Tdata.Tjiuxing[7],
						2: '',
						3: Tdata.Tqiyi[7],
						4: Tdata.Tjiushen[7],
						5: Tdata.TDganzhi[7],
						6: Rdata.Rmen[7],
						7: Rdata.RDganzhi[7],
						8: Rdata.Dzhishimen[7],
						9: Ddata.DQiyi[7],
						10: Ddata.DGod[7],
						11: Ddata.DGanZhi[7]
					},
					7: {
						0: '',
						1: Tdata.Tjiuxing[0],
						2: '',
						3: Tdata.Tqiyi[0],
						4: Tdata.Tjiushen[0],
						5: Tdata.TDganzhi[0],
						6: Rdata.Rmen[0],
						7: Rdata.RDganzhi[0],
						8: Rdata.Dzhishimen[0],
						9: Ddata.DQiyi[0],
						10: Ddata.DGod[0],
						11: Ddata.DGanZhi[0]
					},
					8: {
						0: '',
						1: Tdata.Tjiuxing[5],
						2: '',
						3: Tdata.Tqiyi[5],
						4: Tdata.Tjiushen[5],
						5: Tdata.TDganzhi[5],
						6: Rdata.Rmen[5],
						7: Rdata.RDganzhi[5],
						8: Rdata.Dzhishimen[5],
						9: Ddata.DQiyi[5],
						10: Ddata.DGod[5],
						11: Ddata.DGanZhi[5]
					}
				},
			"Ddata": Ddata,
			"Tdata": Tdata,
			"SXshous": SXshous,
			"Xshou": Xshou,
			"Yinyang": Yinyang,
			"Jnum": Jnum
	};
	console.log("---------------------")
	console.log(json)
	return json;
}

};

export default plate;